package com.gxm.练习.引用;

import com.alibaba.fastjson.JSON;
import com.google.common.collect.Maps;
import org.junit.Test;

import java.util.HashMap;
import java.util.Map;

public class VariableDemo {
//    @Test
//    public void demo1(){
//        String s = "a";
//        Map<String, String> map = new HashMap<>();
//        map.put("s",s);
//        s = "b";
//        map.put("s2",s);
//        System.out.println(map);
//    }
//
//    @Test
//    public void demo2(){
//        Bean bean = new Bean();
//        bean.setS("a");
//        Map<String, Bean> map = new HashMap<>();
//        map.put("s", bean);
//        bean.setS("b");
//        map.put("s2",bean);
//        System.out.println(JSON.toJSON(map));
//    }

    @Test
    public void demo3(){
        Bean bean = new Bean();
        Map<String, String> map = new HashMap<>();
        map.put("key","1");
        bean.outpMap(map);
        System.out.println(JSON.toJSONString(map));
        String str = "1";
        bean.outpStr(str);
        System.out.println(str);
    }
}

class Bean {
    private String s;

    public String getS() {
        return s;
    }

    private void setMap(Map<String, String> map) {
        map.put("key","2");
    }

    private void setStr(String str) {
        System.out.println(str);
        str = "2";
        System.out.println(str);

    }

    public void outpMap(Map<String, String> map){
        System.out.println(JSON.toJSONString(map));
        setMap(map);
    }

    public void outpStr(String str){
        System.out.println("outpStr:1:" + str);
        setStr(str);
        System.out.println("outpStr:2:" + str);
    }
}